1. The Field of the Invention
The present invention relates to the field of computer network performance monitoring. Specifically, the present invention relates to methods, systems and computer program products for measuring performance metrics of networked computing entities by routing network requests through the computing entities.
2. Background and Related Art
Computer networks have revolutionized our way of life by enhancing our ability to communicate and access information. One need only have access to an Internet-enabled computing device to be able to consume a wide variety of network services (e.g., e-mail communication, chat room participation, Web sites access, instant messaging, or the like) from all across the globe.
Often, there is a need to measure the performance of a network service. For example, when advertising a network service to the public, a network service provider often will advertise certain performance metrics that are important to a potential consumer. The network service provider thus would need to accurately measure the performance in order to give due diligence to truthful advertising.
Performance metrics of interest might include the number of xe2x80x9chitsxe2x80x9d a Web site has encountered, the number of access requests that have been serviced or rejected, or the like. In order to measure performance using conventional techniques, each service logs statistical metrics regarding its performance. Those metrics may then be entered into a statistical database and then provided to an aggregation engine that aggregates the statistical metrics to provide an overall statistical view of how the service is performing.
This conventional method does allow individuals to access performance information at some level to facilitate subsequent performance evaluation. However, this method often requires trained evaluators to come on site to periodically perform such testing. Also, such testing often focuses on a high-level view of system performance. Often, it would be advantageous to identify specific behaviors of components within the system, or even specific behaviors of software layers within the component.
Accordingly, what is desired are methods, systems and computer program products that allow more flexibility in how the performance of a network service is measured, and what performance information is acquired.
It is often desirable to measure performance metrics associated with computing entities. Such computing entities may be computers, computer systems, computing devices, software modules, software layers, or the like. In accordance with the principles of the present invention, performance metrics regarding remote computing entities may be gathered remotely by routing a network message through specific computing entities of interest, and having the computing entities report performance metrics by adding entries into the network message into an editable portion of the network message. That editable portion does not include instructions to be executed by the destination computing entity, but is merely transplanted from the request to the response when generated by the destination computing system. In the response direction as well, the response may be routed as designated in the request, with each intermediary computing entity in the return path potentially adding an entry with performance metrics.
The route may be designated using a path header in the header element of a Simple Object Access Protocol (SOAP) envelope. That SOAP envelope may be embedded within, for example, a HyperText Transport Protocol (HTTP) network message. The editable portion of the network message that may be edited by the intermediary and destination computing entities may be a unique eXtenstible Markup Language (XML) element that resides within the body element of the SOAP envelope. The network message is then issued to the destination computing system.
Since the intermediary and destination computing entities each have an opportunity to add performance metrics entries into the editable portion of the network message, and since the editable portion is transplanted from the request to the response, the editable portion of the response will include potentially many performance entries by the time the response is received back at either the original computing entity, or another delegated receiver of the response. Accordingly, by intelligently routing the network message, and by causing certain performance metrics to be gathered, one may intelligently evaluate performance metrics of network systems even remotely.
Furthermore, the computing entities are not limited to elements that have traditionally been evaluated for performance. Any computing entity that is capable of editing the editable portion may add performance metrics. Accordingly, not only may one obtain performance metrics about a particular computer, or computer system, but one may also obtain performance information regarding software modules, and even layers within those software modules.
Additional features and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the invention. The features and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.